package org.laperra.tienda.model;

import java.io.Serializable;

import javax.persistence.AssociationOverrides;
import javax.persistence.AssociationOverride;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Transient;



@Entity
@AssociationOverrides({
	@AssociationOverride(name = "pk.factura", 
		joinColumns = @JoinColumn(name = "idFactura")),
	@AssociationOverride(name = "pk.producto", 
		joinColumns = @JoinColumn(name = "idProducto")) })
public class LineaFactura implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private LineaFacturaClave pk = new LineaFacturaClave();
	private Integer unidades;
	
	public LineaFactura() {
	}
 
	@EmbeddedId
	public LineaFacturaClave getPk() {
		return pk;
	}
 
	public void setPk(LineaFacturaClave pk) {
		this.pk = pk;
	}
 
	@Transient
	public Factura getFactura() {
		return getPk().getFactura();
	}
 
	
	public void setFactura(Factura factura) {
		getPk().setFactura(factura);
	}
 
	@Transient
	public Producto getProducto() {
		return getPk().getProducto();
	}
 
	public void setProducto(Producto producto) {
		getPk().setProducto(producto);
	}
 
	@Column(nullable = false)
	public Integer getUnidades() {
		return this.unidades;
	}
 
	public void setUnidades(Integer unidades) {
		this.unidades = unidades;
	}
 
	 
	public boolean equals(Object o) {
		if (this == o)
			return true;
		if (o == null || getClass() != o.getClass())
			return false;
 
		LineaFactura that = (LineaFactura) o;
 
		if (getPk() != null ? !getPk().equals(that.getPk())
				: that.getPk() != null)
			return false;
 
		return true;
	}
 
	public int hashCode() {
		return (getPk() != null ? getPk().hashCode() : 0);
	}


}
